const { defineConfig } = require('@vue/cli-service')
const Mock = require('mockjs')
const { list } = Mock.mock({
  'list|40': [
    {
      'id|+1': 1,
      'image': '@image(200X200,@color)',
      'title': '@ctitle(1,30)',
      'price|1-100.1-2': 1
    }
  ]
})
const { products } = Mock.mock({
  'products|50': [{
    'id|+1': 1,
    'classify': '@pick(["手机数码","礼品鲜花","男装女装"])',
    "title": '@ctitle(3,5)',
    'image': '@image(100X100,@color)'
  }]
})
module.exports = defineConfig({
  transpileDependencies: true,
  // 开发者服务器
  devServer: {
    setupMiddlewares: (mid, dev) => {
      //定义接口
      // dev.app.get('/api/list', (req, res) => {
      //   // req是前端传过来的参数 ，res是需要返回给前端的数据
      //   res.send({
      //     code: 200,
      //     data: list,
      //     total: list.length
      //   })
      // })
      // 定义列表接口-分页
      dev.app.get('/api/list', (req, res) => {
        const { pagination, pageNum } = req.query // 页码：1  条数：10
        res.send({
          code: 200,
          // 1 10 :    0  1  2  3   4  5  6  7  8  9
          data: list.slice((pagination - 1) * pageNum, pagination * pageNum), // (起始位置，结束位置+1)
          total: list.length
        })
      })
      // 详情接口
      dev.app.get('/api/detail', (req, res) => {
        const { id } = req.query
        res.send({
          code: 200,
          data: list.find(item => item.id == id) // 只能有两个结果，要么找到，要么找不到  找到就返回这个元素，找不到就返回undefined
        })
      })
      // 搜索接口
      dev.app.get('/api/search', (req, res) => {
        const { value } = req.query
        res.send({
          code: 200,
          // includes: 判断是否包含某个元素
          // filter: 过滤出符合条件的所有元素组成的新数组
          data: list.filter(item => item.title.includes(value))
        })
      })
      // 分类接口
      dev.app.get('/api/kind', (req, res) => {
        const { key } = req.query
        res.send({
          code: 200,
          data: products.filter(item => item.classify == key)
        })
      })
      return mid
    }
  }
})
